package com.hl.payServer.model;

import com.hl.payServer.util.GenerateUUID;
import tk.mybatis.mapper.annotation.KeySql;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 155****7909
 * @date 2021-05-03 22:16:27
 * @email 
 */
@Table(name = "PayTradeInfo")
public class PayTradeInfo extends BaseEntity {

    /**
     * id
     */
    @Id
    @Column(name = "id")
    @KeySql(genId = GenerateUUID.class)
    private String id;
    /**
     * 支付通道  1支付宝  2微信
     */
    @Column(name = "payChannle")
    private Integer payChannle;
    /**
     * 交易类型　
     * enum TradeType
     */
    @Column(name = "tradeType")
    private String tradeType;
    /**
     * 所属企业编码
     */
    @Column(name = "companyCode")
    private String companyCode;
    /**
     * 支付平台唯一单号
     */
    @Column(name = "tradeNo")
    private String tradeNo;
    /**
     * 下游业务系统请求业务单号
     */
    @Column(name = "bizNo")
    private String bizNo;
    /**
     * 外部交易号(实际支付号)
     * 交易平台返回的交易号(支付宝自己的交易单号)
     */
    @Column(name = "outTradeNo")
    private String outTradeNo;
    /**
     * 交易金额  单位是分
     */
    @Column(name = "amount")
    private Integer amount;
    /**
     * 支付状态
     */
    @Column(name = "status")
    private String status;
    /**
     * 订单回调通知URL
     */
    @Column(name = "notifieUrl")
    private String notifieUrl;
    /**
     * 已经通知次数
     */
    @Column(name = "notifieCount")
    private Integer notifieCount;
    /**
     * 下一次通知时间  为null不通知
     */
    @Column(name = "notifieTime")
    private Date notifieTime;
    /**
     * 通知状态  0未通知成功1已通知成功
     */
    @Column(name = "notifieFlag")
    private Integer notifieFlag;
    /**
     * 支付时间
     */
    @Column(name = "payTime")
    private Date payTime;
    /**
     * 业务端保留字段
     */
    @Column(name = "backup1")
    private String backup1;
    /**
     * 业务端保留字段
     */
    @Column(name = "backup2")
    private String backup2;
    /**
     * 业务端保留字段
     */
    @Column(name = "backup3")
    private String backup3;
    /**
     * 业务端保留字段
     */
    @Column(name = "backup4")
    private String backup4;
    /**
     * 业务端保留字段
     */
    @Column(name = "backup5")
    private String backup5;
    /**
     * 业务平台传入的参数
     */
    @Column(name = "bizData")
    private String bizData;
    /**
     * 请求第三方支付返回信息(同步返回的信息)
     */
    @Column(name = "returnDetailInfo")
    private String returnDetailInfo;
    /**
     * 第三方支付回调返回信息(异步返回的信息)
     */
    @Column(name = "notifyDetailInfo")
    private String notifyDetailInfo;
    /**
     * 支付平台返回给业务系统的参数
     */
    @Column(name = "platformPayReturn")
    private String platformPayReturn;
    /**
     * 消费项目编码
     */
    @Column(name = "projectCode")
    private String projectCode;
    /**
     * 消费名称
     */
    @Column(name = "body")
    private String body;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Integer getPayChannle() {
        return payChannle;
    }

    public void setPayChannle(Integer payChannle) {
        this.payChannle = payChannle;
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }

    public String getTradeNo() {
        return tradeNo;
    }

    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
    }

    public String getBizNo() {
        return bizNo;
    }

    public void setBizNo(String bizNo) {
        this.bizNo = bizNo;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public Integer getAmount() {
        return amount;
    }

    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getNotifieUrl() {
        return notifieUrl;
    }

    public void setNotifieUrl(String notifieUrl) {
        this.notifieUrl = notifieUrl;
    }

    public Integer getNotifieCount() {
        return notifieCount;
    }

    public void setNotifieCount(Integer notifieCount) {
        this.notifieCount = notifieCount;
    }

    public Date getNotifieTime() {
        return notifieTime;
    }

    public void setNotifieTime(Date notifieTime) {
        this.notifieTime = notifieTime;
    }

    public Integer getNotifieFlag() {
        return notifieFlag;
    }

    public void setNotifieFlag(Integer notifieFlag) {
        this.notifieFlag = notifieFlag;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public String getBackup1() {
        return backup1;
    }

    public void setBackup1(String backup1) {
        this.backup1 = backup1;
    }

    public String getBackup2() {
        return backup2;
    }

    public void setBackup2(String backup2) {
        this.backup2 = backup2;
    }

    public String getBackup3() {
        return backup3;
    }

    public void setBackup3(String backup3) {
        this.backup3 = backup3;
    }

    public String getBackup4() {
        return backup4;
    }

    public void setBackup4(String backup4) {
        this.backup4 = backup4;
    }

    public String getBackup5() {
        return backup5;
    }

    public void setBackup5(String backup5) {
        this.backup5 = backup5;
    }

    public String getBizData() {
        return bizData;
    }

    public void setBizData(String bizData) {
        this.bizData = bizData;
    }

    public String getReturnDetailInfo() {
        return returnDetailInfo;
    }

    public void setReturnDetailInfo(String returnDetailInfo) {
        this.returnDetailInfo = returnDetailInfo;
    }

    public String getNotifyDetailInfo() {
        return notifyDetailInfo;
    }

    public void setNotifyDetailInfo(String notifyDetailInfo) {
        this.notifyDetailInfo = notifyDetailInfo;
    }

    public String getPlatformPayReturn() {
        return platformPayReturn;
    }

    public void setPlatformPayReturn(String platformPayReturn) {
        this.platformPayReturn = platformPayReturn;
    }

    public String getProjectCode() {
        return projectCode;
    }

    public void setProjectCode(String projectCode) {
        this.projectCode = projectCode;
    }

    public String getTradeType() {
        return tradeType;
    }

    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }
}